package com.mybase.app.app;

import android.app.Application;
import com.mybase.app.R;
import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
import com.nostra13.universalimageloader.cache.memory.impl.UsingFreqLimitedMemoryCache;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.QueueProcessingType;
import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;
import com.nostra13.universalimageloader.core.download.BaseImageDownloader;
import io.rong.imkit.RongIM;

/**
 * Created by happy_000 on 2014/11/21.
 */
public class MyApp extends Application {
    public static int RegiterSucss=0x123;
    public static int ToRegiter=0x1;
    private DisplayImageOptions options;
    private ImageLoader imageLoader;
    /** 表示通过Intent传递到下一个Activity的图片列表 */
    public static final String ARG_PHOTO_LIST = "my.android.app.chooseimages.PHOTO_LIST";
    /** 表示通过Intent传递到上一个Activity的图片列表 */
    public static final String RES_PHOTO_LIST = "my.android.app.chooseimages.PHOTO_LIST";

    /** 表示选择的图片发生了变化 */
    public static final int RESULT_CHANGE = 10010;

    /** 最多能够选择的图片个数 */
    public static final int MAX_SIZE = 20;

    public ImageLoader getImageLoader() {
        return imageLoader;
    }

    public void setImageLoader(ImageLoader imageLoader) {
        this.imageLoader = imageLoader;
    }

    public DisplayImageOptions getOptions() {
        return options;
    }

    public void setOptions(DisplayImageOptions options) {
        this.options = options;
    }


    public  void initOptions(){
        options = new DisplayImageOptions.Builder()
                .showImageOnLoading(R.drawable.zhuzhendonghua)            //加载图片时的图片
                .showImageForEmptyUri(R.drawable.zhuzhendonghua)         //没有图片资源时的默认图片
                .showImageOnFail(R.drawable.zhuzhendonghua)              //加载失败时的图片
                .cacheInMemory(true)                               //启用内存缓存
                .cacheOnDisk(true)                                 //启用外存缓存
                .considerExifParams(true)                          //启用EXIF和JPEG图像格式
                .displayer(new RoundedBitmapDisplayer(10))         //设置显示风格这里是圆角矩形
                .build();
    }
    public  void initConfig() {
        ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(this)
                .memoryCacheExtraOptions(480, 800) // maxwidth, max height，即保存的每个缓存文件的最大长宽
                .threadPoolSize(3)//线程池内加载的数量
                .threadPriority(Thread.NORM_PRIORITY - 2)
                .denyCacheImageMultipleSizesInMemory()
                .memoryCache(new UsingFreqLimitedMemoryCache(2 * 1024 * 1024)) // You can pass your own memory cache implementation/你可以通过自己的内存缓存实现
                .memoryCacheSize(2 * 1024 * 1024)
                .discCacheSize(50 * 1024 * 1024)
                .diskCacheFileNameGenerator(new Md5FileNameGenerator())
                        // .discCacheFileNameGenerator(newMd5FileNameGenerator())//将保存的时候的URI名称用MD5 加密
                .tasksProcessingOrder(QueueProcessingType.LIFO)
                .discCacheFileCount(100) //缓存的文件数量
                        // .discCache(new UnlimitedDiscCache(cacheDir))//自定义缓存路径
                .defaultDisplayImageOptions(DisplayImageOptions.createSimple())
                .imageDownloader(new BaseImageDownloader(this, 5 * 1000, 30 * 1000)) // connectTimeout (5 s), readTimeout (30 s)超时时间
                .writeDebugLogs() // Remove for releaseapp
                .build();//开始构建
        // Initialize ImageLoader with configuration.
        imageLoader = ImageLoader.getInstance();
        imageLoader.init(config);

    }
    @Override
    public void onCreate() {
        super.onCreate();
        initOptions();
        initConfig();
       // ImageManager.init();
//        SDKInitializer.initialize(getApplicationContext());
  //     RongIM.init(this, "lmxuhwagxs4ld", R.drawable.ic_launcher);
    }
}
